<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

class Comandas extends CI_Controller {
	
	function __construct() {
		parent::__construct();
	
		# Carregando Models
		$this->load->model(
		array(
				'Comanda'
			)
		);
	}
	
	/**
	* @name index()
	* @param void
	* @return void
	* @see Comandas
	* @since 28/05/2013
	* @author Carlos Augusto Dugonski
	*/
	public function index() {
		if ($this->index->logado() == 'administrador' || $this->index->logado() == 'caixa') {
			$this->index->montarPagina('comanda/comanda_view');
		} else {
			show_error(ERRO_PERMISSAO);
		}
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function ler() {
    	if ($this->index->logado() == 'administrador' || $this->index->logado() == 'caixa') {
    		echo '{ "aaData" : ' . json_encode($this->Comanda->ler()) . " } ";
    	} else {
    		show_error(ERRO_PERMISSAO);
    	}
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function fechar() {
    	if ($this->index->logado() == 'administrador' || $this->index->logado() == 'caixa' || $this->index->logado() == 'mesa') {
	    	$aComanda = $this->Comanda->lerByLogin($this->session->userdata('login_usuario'));
	    	$this->db->trans_start();
	    	$this->Comanda->fechando($aComanda['id_comanda']);
	    	$this->usuario->liberarMesa($aComanda['tb_usuario_login_usuario']);
	    	$aData = array();
	    	$aData['total'] = $this->Comanda->total($aComanda['tb_usuario_login_usuario']);
	    	$this->usuario->logoutMesa($aComanda['tb_usuario_login_usuario']);
	    	$this->db->trans_complete();
	    	$this->index->montarPagina('mesa/fechar_view', $aData);
    	} else {
    		$this->index->montarPagina('mesa/qrmenu_view');
    	}
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function fecharMesa($iIdComanda) {
    	if ($this->index->logado() == 'administrador' || $this->index->logado() == 'caixa') {
    		//Começa transação
    		$aComanda = $this->Comanda->lerById($iIdComanda);
    		if ($aComanda['status_comanda'] == 'Aberta') {
    			echo 'Aberta';
    			return false;
    		}
    		$this->db->trans_start();
    		$this->Comanda->fechar($iIdComanda);
    		$this->usuario->liberarMesa($aComanda['tb_usuario_login_usuario']);
    		//Termina transação
    		$this->db->trans_complete();
    		if ($this->db->trans_status()) {
    			echo 'Sucesso';
    			return true;
    		} else {
    			echo 'Falha';
    			return false;
    		}
    	} else {
    		show_error(ERRO_PERMISSAO);
    		return false;
    	}
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function banirMesa($iIdComanda) {
    	if ($this->index->logado() == 'administrador' || $this->index->logado() == 'caixa') {
		    $aComanda = $this->Comanda->lerById($iIdComanda);
		    $this->db->trans_start();
		    $this->Comanda->banindo($aComanda['id_comanda']);
		    $this->usuario->liberarMesa($aComanda['tb_usuario_login_usuario']);
		    $this->usuario->logoutMesa($aComanda['tb_usuario_login_usuario']);
		    $this->db->trans_complete();
		    if ($this->db->trans_status()) {
		    	echo 'Banido';
		    	return true;
		    } else {
		    	echo 'Falha';
		    	return false;
		    }
    	} else {
    		show_error(ERRO_PERMISSAO);
    		return false;
    	}
    }
}

/* End of file Comandas.php */